package com.geaosu.wanandroid.kotlin.learn


/**
 * map集合的创建和遍历
 */
fun main() {
    // 类似java
//    val map = HashMap<String, Int>()
//    map.put("香蕉", 1)
//    map.put("苹果", 2)
//    map.put("梨", 3)
//
//    for (item in map) {
//        print(" " + item)// 香蕉=1 苹果=2 梨=3
//    }


//    // kotlin中不建议使用put和get方法来对map进行添加和读取数据的操作,
//    // kotlin中推荐使用一种类似于数组下标的语法结构;
//    val map = hashMapOf<String, Int>()
//    // 添加数据
//    map["苹果"] = 1
//    map["香蕉"] = 2
//    map["梨"] = 3
//    for (item in map) {
//        print(" " + item)// 苹果=1 香蕉=2 梨=3
//    }
//
//    println()
//
//    // 读取数据
//    val num1 = map["苹果"]
//    val num2 = map["香蕉"]
//    print(num1)// 1
//    print(num2)// 2
//


//    // 方式3: Kotlin提供的简化函数: mapOf()
//    val map = mapOf("苹果" to 1,"梨" to 2, "番茄" to 3)
//    // 注意: to 不是关键字, 而是infix函数
//    for (item in map){
//        print(" " + item)// 苹果=1 梨=2 番茄=3
//    }


//    // 方式4: Kotlin提供的简化函数: mutableMapOf()
//    val map = mutableMapOf("苹果" to 1, "梨" to 2, "番茄" to 3)
//    map["梨"] = 12 // 修改数据
//    map["西红寺"] = 20 // 增加数据
//    map.remove("苹果") // 删除数据
//    for (item in map) {
//        print(" " + item)// 苹果=1 梨=12 番茄=3 西红寺=20
//    }

    // map集合的遍历方式
    val map = mutableMapOf("苹果" to 1, "香蕉" to 2, "梨" to 2, "番茄" to 4)
    for ((key, value) in map) {
        print("key = " + key + "  value = " + value + "\n")// key = 苹果  value = 1   key = 香蕉  value = 2   key = 梨  value = 2   key = 番茄  value = 4
        // key = 苹果  value = 1
        // key = 香蕉  value = 2
        // key = 梨  value = 2
        // key = 番茄  value = 4
    }


}